#include <stdio.h>
int main()
{
    int m, n, dp[110][110] = {0}, a[110],tmp=0;

    scanf("%d%d", &n, &m);
    for (int i = 1; i <= n; i++)
    {
        scanf("%d", &a[i]);

    }
    for (int i = 1; i <= a[1]; i++)
    {
        dp[1][i] = 1;
    }
    for(int i = 1; i <= n; i++){
        dp[i][0]=1;
    }
    for(int i = 2; i <= n; i++){
        for(int j = 1; j <= m; j++){
            for(int k = 0; k <= a[i]&&k<=j; k++)
            dp[i][j]+=dp[i-1][j-k];
            dp[i][j]%=1000007;
        }
    }
    //输出dp
    // for(int i = 1; i <= n; i++){
    //     for(int j = 1; j <= m; j++){
    //         printf("%d ", dp[i][j]);
    //     }
    //     printf("\n");
    // }
    printf("%d\n", dp[n][m]);
    return 0;
}